For some applications, such as pulse wave modulation (PWM) mode for a hard disk voice coil driver, there is a need to generate two triangular waveforms with the same frequency and amplitude, but opposite in phase. An example of a prior art voice coil driver 10 driving a voice coil 12 is shown in FIG. 1. The voice coil driver 10 includes first and second high side driving transistors 14, 16 and first and second low side driving transistors 18, 20 forming a bridge circuit 22 with the voice coil 12. The bridge circuit 22 also includes a sense resistor 24 from which a sense or error amplifier (not shown) senses current through the voice coil 12 in order to provide a feedback control of that current as is known in the art. The voice coil driver 10 also includes a single waveform generator 26 directly coupled to a first input of a first control amplifier 28 and coupled through an inverter 30 to a first input of a second control amplifier 32. The first control amplifier 28 also includes a second input coupled to voltage reference Vref and an output coupled to the gates of the first high side transistor 14 and the first low side transistor 18. Similarly, the second control amplifier 34 has a second input coupled to the voltage reference Vref and an output wounded coupled to the gates of the second high side transistor 16 and the second low side transistor 20.
In PWM mode, the voice coil driver 10 drives current through the voice coil 12 in either direction by varying the duty cycles of the control signals that are supplied by the first and second control amplifiers 30, 34. To drive current from left to right through the voice coil 12, the duty cycle of the signal driving the first high side and first low side transistors 14, 18 should be greater than the duty cycle of the control signal driving the second high side and second low side transistors 16, 20. Conversely, the relative duty cycles are reversed to drive current from right to left through the voice coil 12. If the duty cycles are equal, then no current is driven through the voice coil 12.
The single waveform generator 26 generates a first triangular waveform by charging and discharging a capacitor (not shown). The waveform generator 26 transmits the first triangular waveform to the inverter 30 which produces a second triangular waveform equal in amplitude and frequency to the first triangular waveform, but opposite in phase. The first triangular waveform is compared to Vref by the first control amplifier 28 to obtain a first square wave control signal and the second triangular waveform is compared to Vref by the second control amplifier 32 to create a second square wave control signal. FIG. 2(a) shows the first and second (dashed line) triangular signals together with Vref, FIG. 2(b) shows the first square wave control signal, and FIG. 2(c) shows the second square wave control signal, assuming ideal conditions.
The problem with the voice coil driver 10 shown FIG. 1 is that the inverter 30 produces a second triangular signal that is not exactly equal in amplitude and opposite in phase to the first triangular signal. The two triangular signals typically differ because of the delays inherent in the inverter itself. As shown in FIG. 3(a) the second triangular signal lags the first triangular signal which causes the second square wave control signal to lag the first square wave control signal as shown in FIG. 3(b). In addition, the inverter 30 typically does not have a gain of exactly unity, so the second triangular signal may have an amplitude that is greater or less than the amplitude of the first triangular signal. For example, FIG. 4(a) shows the second triangular signal having an amplitude greater than that of the first triangular signal, which causes the second square wave control signal to have a greater amplitude than the first square wave control signal. Such an increased amplitude would tend to drive current from right to left through the voice coil 12 in an amount greater than desired.